import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;

public class Datei
{
	
	private ArbeiterListe arbeiterliste;
	
	public Datei(ArbeiterListe a)
	{
		arbeiterliste = a;
	}
	
	public void serialisieren(String datei)
    {
        ObjectOutputStream oos = null;
        try
        {
            oos = new ObjectOutputStream(new FileOutputStream(datei));
            oos.writeObject(arbeiterliste.getAlist());
        } catch (FileNotFoundException e)
        {
            System.out.println("Kann Datei nicht zum Serialisieren �ffnen: " + datei);
        } catch (IOException e)
        {
            System.out.println("Fehler beim Serialisieren: " + e.getMessage());
        } finally  // kommt in jedem Fall dran
        {
            if (oos != null)
            {
                try
                {
                    oos.close();
                } catch (IOException e)
                {
                    System.out.println("Kann Datei nicht schlie�en: " + datei);
                }
            }
        }
    }

    /**
     * l�dt die B�cherliste aus serialisierter Datei
     * @param datei Datei, aus welcher die B�cherliste geladen wird
     */
    public void deserialisieren(String datei)
    {
        ObjectInputStream ois = null;
        try
        {
            ois = new ObjectInputStream(new FileInputStream(datei));
            arbeiterliste.Arbeiter_ersetzen((ArrayList<Arbeiter>) ois.readObject());
        } catch (FileNotFoundException e)
        {
            System.out.println("Kann Datei nicht zum Deserialisieren �ffnen: " + datei);
        } catch (IOException e)
        {
            System.out.println("Fehler beim Deserialisieren: " + e.getMessage());
        } catch (ClassNotFoundException e)
        {
            System.out.println("Feler beim Deserialisieren: " + e.getMessage());
        } finally
        {
            if (ois != null)
            {
                try
                {
                    ois.close();
                } catch (IOException e)
                {
                    System.out.println("Kann Datei nicht schlie�en: " + datei);
                }
            }
        }

    }
}
